﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Dominio
{
    public class TanqueCombustible:Tanque,IMantenimiento
    {
        public Contenido contenido { get; set; }

        public TanqueCombustible(string desc, int capacidad, Contenido contenido, int calidad)
        {
            this.Descripcion = desc;
            this.Capacidad = capacidad;
            this.LitrosDisponibles = 0;
            this.contenido = contenido;
            //this.idTanque = Tanque.idTanque++;
            //_observadores = new List<IObservador>();
            this.Mantenimientos = new List<TareaMantenimiento>();
            this.Borrado = 0;
            this.Calidad = calidad;
        }

        public override string ToString()
        {
            return this.idTanque + " " + this.Descripcion;
        }

        public void Limpieza(Tanque tanque)
        {
            TareaMantenimiento tarea = new Limpieza();
            tarea.FechaHora = DateTime.Now;
            tarea.Tanque = tanque;
            this.LitrosDisponibles = 0;
            this.Mantenimientos.Add(tarea);
            this.UltimaFechaLimpieza = DateTime.Now;
            tarea.Create();
            tanque.Update();
        }

        public void Reposicion(int Litros, int IdReposicion, DateTime Fecha)
        {
            TareaMantenimiento tarea = new Reposicion(Litros, IdReposicion, Fecha);
            Mantenimientos.Add(tarea);
            this.LitrosDisponibles = Litros;
            tarea.Create();
        }

        public void Tratamiento(Tanque t)
        {
            TareaMantenimiento tarea = new Tratamiento();
            tarea.FechaHora = DateTime.Now;
            tarea.Tanque = t;
            this.Mantenimientos.Add(tarea);
            if (this.Calidad < 5)
            {
                this.Calidad = this.Calidad + 1;
            }
            tarea.Create();
        }
    }
}
